package servicos;

import java.io.File;

import javax.json.Json;
import javax.json.JsonException;
import javax.json.JsonObject;

import dao.ClienteDao;
import factory.DaoFactory;
import beans.Cookie;
import beans.Usuario;
import resposta.CabecalhoResposta;
import resposta.Resposta;
import sessao.Sessao;
import util.Servico;

public class WSGetToken implements Servico{
	private ClienteDao clienteDao = DaoFactory.getClienteDao();

	@Override
	public void executa(Resposta resposta) {		
		System.out.println("json resposta "+resposta.getRequisicao().getMetodo().getJson().toString());
		Usuario user = new Usuario(resposta.getRequisicao().getMetodo().getJson().getString("usuario"), resposta.getRequisicao().getMetodo().getJson().getString("senha"));
		if(clienteDao.login(user)){
			String token = String.valueOf(System.currentTimeMillis());
			
			Cookie cookie = new Cookie(token, token);
			Sessao sessao = Sessao.getSessao();
			sessao.iniciarSessao(cookie);
			
			JsonObject rslt = Json.createObjectBuilder()					
					.add("token", token)
					.build();
						
			CabecalhoResposta cabecalhoResposta = new CabecalhoResposta(rslt.toString().length(), "application/json");
			
			resposta.setCabecalhoResposta(cabecalhoResposta);
			resposta.despacharCabecalho();
			resposta.despacharRecurso(rslt);					
		}else{
			JsonObject rslt = Json.createObjectBuilder()					
					.add("token", "")
					.build();
						
			CabecalhoResposta cabecalhoResposta = new CabecalhoResposta(rslt.toString().length(), "application/json");
			
			resposta.setCabecalhoResposta(cabecalhoResposta);
			resposta.despacharCabecalho();
			resposta.despacharRecurso(rslt);	
		}	
		
	}

}
